Javascript / JQuery / Output使用JQUERY.get

我正在使用JQuery和promises从模拟端点中获取一些模拟数据。

仅出于此目的,我想尝试使其与async / await一起使用。

尽管我在控制台中没有获得相同的输出(在chrome浏览器中),我还是设法找到了一些有效的代码。

这是两段代码:

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);
        }
    );

// same as above but with async/await

import $ from 'jquery';


let getUsersFromEndPoint = async function (){
    try {
        let users = await $.get("http://5e2f41529c29c900145db22d.mockapi.io/test/users");
        console.log('Success Async: ' + users);
    } catch (error) {
        console.log('Error : ',error.responseText);
    }
};

getUsersFromEndPoint();

它们输出:

Javascript / JQuery / Output使用JQUERY.get

我不确定有什么区别。 有谁知道我为什么得到不同的输出?以及它们都“意味着”什么?

谢谢!

java21710397 回答:Javascript / JQuery / Output使用JQUERY.get

基于promise的代码和async / await都是正确的,并且执行相同的操作,只是差别很小(因此很难发现)。

基于承诺的版本的记录器代码:

console.log('Success promises: ',data);

...按预期记录结果。

但是,在异步函数中,console.log包含一个+运算符,该运算符将其第二个操作数(数据)转换为字符串,因此所有对象都转换为"[object Object]"

console.log('Success Async: ' + users);

将数据作为console.log的第二个参数传递(就像您对promise版本所做的那样),您将获得预期的结果。

本文链接:https://www.f2er.com/2702573.html

大家都在问