Javascript 承诺不使用async和Wait进行解析

Javascript 承诺不使用async和Wait进行解析,javascript,promise,es6-promise,Javascript,Promise,Es6 Promise,我正在努力学习承诺和异步/等待 请理解我是新来的,所以请随时提供您想要的建议 其思想是使用retrieveUserFromFB模拟到DB的连接或来自API端点的响应,retrieveUserFromFB将返回一个承诺 然后,returnUsernameViaUserid(异步)将调用retrieveUserFromFB并解析承诺。或者我就是这么想的 异步函数returnUsernameViaUseriduserId{ const result=wait retrieveUserFromFB;

我正在努力学习承诺和异步/等待

请理解我是新来的,所以请随时提供您想要的建议

其思想是使用retrieveUserFromFB模拟到DB的连接或来自API端点的响应,retrieveUserFromFB将返回一个承诺

然后,returnUsernameViaUserid(异步)将调用retrieveUserFromFB并解析承诺。或者我就是这么想的

异步函数returnUsernameViaUseriduserId{ const result=wait retrieveUserFromFB; 返回结果; } 函数retrieveUserFromFB{ 返回新的允诺函数解析、拒绝{ setTimeoutfunction{ 解析{用户:'thisistheusername'}; }, 1000 }; } console.logreturnUsernameViaUserid1;异步函数返回一个承诺 您的问题是,当前,您试图记录异步函数的结果,而异步函数始终是一个承诺,要纠正这一点,请将您的console.log放入异步函数中

另一个解决方案是使用.then on retrieveUserFromFB完全避免异步函数(如果您选择)

异步函数returnUsernameViaUseriduserId{ const result=wait retrieveUserFromFB; console.logresult; } 函数retrieveUserFromFB{ 返回新的允诺函数解析、拒绝{ setTimeoutfunction{ 解析{用户:'thisistheusername'}; }, 1000 }; } returnUsernameViaUserid1或者我们可以返回usernameviauserid1.thenres=>console.logres。