如何让这个 javascript 承诺生效
How to get this javascript promise to work
我一直在努力寻找最简单的 JavaScript 承诺(没有库),这样我就可以把它放进我厚实的脑袋里。以为我明白了这个概念,但似乎无法实现。谁能解决这个问题?
function fetch(message){
return message;
}
var promise = fetch('beep')
promise.then(function(dMessage){
console.log(dMessage);
}).catch(function(err){
console.error('error-', err);
})
错误消息:promise.then 不是函数
我也对什么时候可以使用它感到有点困惑? NodeJs 将能够在没有额外库的情况下使用它,对吗?对于客户端,我应该得到 ES6-promise?
下面的解决方案,感谢 Daniel B
function fetch(message){
return new Promise(function(resolve, reject){
resolve(message);
});
}
fetch('word').then(function(dMess){
console.log(dMess);
}).catch(function(err){
console.error('error-', err);
})
您正在覆盖本机 fetch
函数。只需删除您的功能即可。
如果您想定义自己的 fetch
函数,它必须 return 一个承诺,如下所示。
function fetch(message){
return Promise.resolve(message);
}
我认为其他答案不正确。尽管它在 'fetch' 中是正确的,但它是浏览器原生的方法(不是用户暗示的 javascript ),但这不是你的承诺不起作用的原因,也没有解释你不是对承诺的理解。
链中的第一个 'promise' 始终必须是承诺 constructor/instance。您可以通过多种方式创建它们,但如果您只有一个像字符串这样的简单值,则必须将其包装在 Promise.resolve(string) 中。之后,链中的其他承诺将不需要此功能,因为它们都包含在链的顶级承诺中。至少这是 Q/Bluebird/ES6 Native promises 等大多数实现的工作方式。
我一直在努力寻找最简单的 JavaScript 承诺(没有库),这样我就可以把它放进我厚实的脑袋里。以为我明白了这个概念,但似乎无法实现。谁能解决这个问题?
function fetch(message){
return message;
}
var promise = fetch('beep')
promise.then(function(dMessage){
console.log(dMessage);
}).catch(function(err){
console.error('error-', err);
})
错误消息:promise.then 不是函数
我也对什么时候可以使用它感到有点困惑? NodeJs 将能够在没有额外库的情况下使用它,对吗?对于客户端,我应该得到 ES6-promise?
下面的解决方案,感谢 Daniel B
function fetch(message){
return new Promise(function(resolve, reject){
resolve(message);
});
}
fetch('word').then(function(dMess){
console.log(dMess);
}).catch(function(err){
console.error('error-', err);
})
您正在覆盖本机 fetch
函数。只需删除您的功能即可。
如果您想定义自己的 fetch
函数,它必须 return 一个承诺,如下所示。
function fetch(message){
return Promise.resolve(message);
}
我认为其他答案不正确。尽管它在 'fetch' 中是正确的,但它是浏览器原生的方法(不是用户暗示的 javascript ),但这不是你的承诺不起作用的原因,也没有解释你不是对承诺的理解。
链中的第一个 'promise' 始终必须是承诺 constructor/instance。您可以通过多种方式创建它们,但如果您只有一个像字符串这样的简单值,则必须将其包装在 Promise.resolve(string) 中。之后,链中的其他承诺将不需要此功能,因为它们都包含在链的顶级承诺中。至少这是 Q/Bluebird/ES6 Native promises 等大多数实现的工作方式。