javascript - 是否可以将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
}```
解决方案
您必须对 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)
})
推荐阅读
- c# - 我可以使用带有前缀条件的正则表达式检测字符位置吗?
- c# - LINQ - 按年/月分组
- c# - ComboBox.Items.Clear 意外反转输入字段中的文本
- acumatica - 从 Acumatica 中的前一行默认网格值
- kubernetes - Kubernetes:如何允许在相同/不同命名空间中运行的两个 pod 进行通信,而不管使用服务名称的协议如何?
- python - 使用 python pandas 将行值转换为列以将日期字段分配给每个新列
- kubernetes - 不允许使用带有 rancher 2.2.8 的 traefik v2.0 标签
- php - 这可能是移动设备的有效用户代理吗?
- python - 为什么这个'for'循环在Python中随机停止
- vue.js - 加载页面后,V-show 无法立即工作