Javascript/JQuery/Output使用JQuery.get调用端点时promise和wait之间的不同输出
我使用JQuery和promises从模拟端点获取一些模拟数据 出于这个原因,我想尝试使用async/await使其工作 我想我找到了一些有效的代码,尽管我在控制台中没有得到相同的输出(在chrome浏览器中) 以下是两段代码:Javascript/JQuery/Output使用JQuery.get调用端点时promise和wait之间的不同输出,javascript,jquery,ecmascript-6,async-await,es6-promise,Javascript,Jquery,Ecmascript 6,Async Await,Es6 Promise,我使用JQuery和promises从模拟端点获取一些模拟数据 出于这个原因,我想尝试使用async/await使其工作 我想我找到了一些有效的代码,尽管我在控制台中没有得到相同的输出(在chrome浏览器中) 以下是两段代码: import $ from 'jquery'; let myPromise = $.get("http://5e2f41529c29c900145db22d.mockapi.io/test/users"); myPromise .then(
import $ from 'jquery';
let myPromise = $.get("http://5e2f41529c29c900145db22d.mockapi.io/test/users");
myPromise
.then(
(data) => {
console.log('Success promises: ', data);
}
)
.catch(
(error) => {
console.log('Error : ', error.responseText);
}
);
及
它们输出:
我不知道有什么区别。
有人知道我为什么得到不同的输出吗?它们都是什么意思
谢谢大家! 基于承诺的代码和
async
/wait
都是正确的,除了一个小的(因此很难发现)差异外,它们做的是相同的事情
基于承诺的版本的记录器代码:
console.log('Success promises: ', data);
…按预期记录结果
但是,在异步函数中,console.log
包含一个+
运算符,该运算符将其第二个操作数(数据)转换为字符串,因此所有对象都转换为“[对象]”
:
将数据作为
console.log的第二个参数传递(正如您对promise版本所做的那样),您将得到预期的结果。在异步版本中将+
更改为,
。同样,您只需在console.log中将对象视为带“+”的字符串('Success async:'+users);哇,不太亮啊哈。。非常感谢大家!!!非常感谢您的时间和解释!
console.log('Success promises: ', data);
console.log('Success Async: ' + users);