首页 > 解决方案 > 是否可以将promise的值设置为对象

问题描述

所以我曾经.then尝试将 promise 的值分配给对象,但我不能,现在我尝试了一个匿名异步函数,它对我没有帮助。

import fetch from 'node-fetch'
import { setProps } from '../helpers/objectResponse.js';
if (!globalThis.fetch) {
    globalThis.fetch = fetch;
}

const wrapMe = (pokimon) => {
    let value;
    const getPokimon = async (pokimon) => {
    const data = await fetch(`https://pokeapi.co/api/v2/pokemon/${pokimon.toLowerCase()}`);
    const response = await data.json();
    return response
    }

    (async () => {
        const data = await getPokimon(pokimon);
        return value = data
    })
    return value

}```

标签: javascriptnode.jsnode-fetch

解决方案


您必须对 ajax 请求使用回调或承诺您不能简单地调用 ajax 并获取其返回值

不使用等待返回data.json(),因此您的承诺将返回getPokimon

尝试这样做

function getPokimon(pokimon) {
    return fetch(`https://pokeapi.co/api/v2/pokemon/${pokimon.toLowerCase()}`).then(r=>r.json())
}

getPokimon("ditto").then(r=>{
    console.log(r)
})


推荐阅读