Pet*_*ter 0 javascript promise es6-promise
我正在尝试了解Promises和Async / Await。
请了解我是新手,请随时为您提供尽可能多的建议。
这个想法是使用retrieveUserFromFB()模拟到数据库的连接或来自API端点的响应,这将返回一个promise。
然后,异步的returnUsernameViaUserid()将调用retrieveUserFromFB()并解决承诺。或那是我的想法。
async function returnUsernameViaUserid(userId) {
const result = await retrieveUserFromFB();
return result;
}
function retrieveUserFromFB() {
return new Promise(function(resolve, reject) {
setTimeout(function() {
resolve({user: 'thisistheusername'});
}, 1000)
});
}
console.log(returnUsernameViaUserid(1));Run Code Online (Sandbox Code Playgroud)
但是输出始终是Promise {},我将不胜感激。userId只是一个丰富多彩的细节,没有功能,我没有将其传递给retrieveUserFromFB()。只是要清楚=)
async function返回一个承诺您的问题是,当前,您正在尝试记录始终为的异步函数的结果Promise,以解决此问题,请将您console.log的放置在中async function。
另一种解决方案是使用.then上retrieveUserFromFB避免了async function一起,如果你选择。
async function returnUsernameViaUserid(userId) {
const result = await retrieveUserFromFB();
console.log(result);
}
function retrieveUserFromFB() {
return new Promise(function(resolve, reject) {
setTimeout(function() {
resolve({user: 'thisistheusername'});
}, 1000)
});
}
returnUsernameViaUserid(1)Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
45 次 |
| 最近记录: |