异步编程是用于推迟具有高延迟或低优先级的操作的策略,通常旨在提高软件的性能,响应性和/或可组合性。这些策略通常使用事件驱动编程和回调的某种组合来使用,并且可选地通过协同程序和/或线程来使用并发。
如何在 JavaScript 中从 fetch 返回值到外部函数[重复]
我需要帮助在获取函数之外获取数据。 const getSpecies = (URL) => { 获取(网址) .then(响应=>response.json()) .then(数据=>{ 控制台.log(数据....
我正在尝试获取渲染函数内部并有一个执行某些操作的 then 函数。我的代码如下。但是,它似乎从未调用过 then 函数。 获取(网址,{ 方法:...
render() 方法在状态改变时并不总是被调用? (反应中的奇怪行为)
我正在学习 React 并尝试使用足球数据 API 来编码前 5 名联赛的足球排名,但有一个奇怪的问题。 我读到每次状态改变时,都会调用 render() 。我...
当函数返回一个对象时,控制台日志记录会打印一个承诺,但当它不是一个对象时,会打印数据
我有一个向 API 发出 get 请求的函数: const get = async (端点: string): Promise => { const 响应: 响应 = wait fetch(`${process.env.PROXY}/${endpo... 我有这个函数可以向 API 发出 get 请求: const get = async (endpoint: string): Promise<object> => { const response: Response = await fetch(`${process.env.PROXY}/${endpoint}`, { method: "GET", }); return {data: response.json() as object}; }; 当我在按钮 onClick 处理程序上使用此功能时: onClick={() => { get( `apiroute` ).then((data: object) => { console.log("Retuned data", data.data); }); }} 控制台显示apromise<object>不是实际数据, 但是当我将 get 函数切换为: const get = async (endpoint: string): Promise<object> => { const response: Response = await fetch(`${process.env.PROXY}/${endpoint}`, { method: "GET", }); return response.json() as object }; 它没有返回数据周围的对象, 然后通过以下方式访问数据: onClick={() => { get( `apiroute` ).then((data: object) => { console.log("Retuned data", data); }); }} 控制台打印出实际数据。 为什么会出现这种情况?我更喜欢第一种方法,并为 error 添加提取密钥,但这个日志记录问题真的很烦我 第一种方式: const get = async (endpoint: string): Promise<object> => { const response: Response = await fetch(`${process.env.PROXY}/${endpoint}`, { method: "GET", }); return {data: response.json() as object}; }; 请记住,response.json()本身会返回一个承诺。 所以你是说return {data: <Promise>}。 第二个有效的原因是因为您直接在异步函数中返回承诺, const get = async (endpoint: string): Promise<object> => { const response: Response = await fetch(`${process.env.PROXY}/${endpoint}`, { method: "GET", }); return response.json(); }; 当您从异步函数返回 Promise 时,get().then(... 像平常一样解析 Promise,因此您将获得预期的正确数据。 如果你想采用第一种方式,请先await: const get = async (endpoint: string): Promise<object> => { const response: Response = await fetch(`${process.env.PROXY}/${endpoint}`, { method: "GET", }); const data = await response.json(); return {data: data}; };
JavaScript 中返回的 API 响应返回未定义,除非我这样做 &&
我正在使用 React,API 的加载时间似乎存在问题。就像我想得到的: {movieInfo.full_name} 这是正在返回的字段之一...
我已经使用同步(http请求)调用从客户端(使用ajax)转换了一个程序到服务器端(Nodejs)。此后,该程序花费的时间比原来长了 4 倍。 我得到“未定义”为
我有一个场景来处理客户号码列表并更新数据库中的详细信息 公共无效updateCustomerDetailsInDB(ListnumberList) for(字符串数字:数字列表){ if(!isExistBy(
我有一个同步 Django 设置,但希望能够提供神经网络预测。 问题是运行神经网络预测需要加载张量流库,每次加载都需要很长时间......
异步def任务(): 异步 def func(): '''需要永远运行计算,而不是执行请求''' 返回一些东西 结果 = 等待函数() 希望有人回答
我开发了一个系统,每个订单状态都会向客户发送一封电子邮件,但每次发送此电子邮件都会花费 5-15 秒的时间,因为这会锁定网站中该用户的新请求,直到...
Console.Error.WriteLineAsync() 与 Console.WriteLine,有什么区别。为什么后面会抛出异常?
我试图理解 StreamJsonRpc 并从这里运行一个示例。 我在这里创建了一个调低的示例。它包含服务器和客户端,并通过 StreamJsonRpc 进行通信。 在服务器中,w...
如何在 Android .NET MAUI 中对应用程序关闭进行一些异步清理工作?
在我的应用程序中,每当我的应用程序关闭时,我都需要进行一些异步清理。理想情况下,我想要一个可以跨平台工作的解决方案,但现在我想让这个工作......
ConcurrentDictionary 不适用于递归异步方法
这是我第一次使用 C# 进行异步操作,我在读取并发字典时遇到问题。 我有一种递归读取模块依赖关系的方法。因为这需要...
Spotify API:无法获取用户当前播放的曲目,GET https://api.spotify.com/v1/me/player/currently-playing 400
我正在尝试学习如何使用 Spotify API 进行实验并希望能够制作一个完整的项目。我能够从用户登录中获取访问令牌。然而,我不确定我该怎么办......
我有应用程序A和B,A向B发送HTTP请求,而B处理并生成响应,A宕机了。 有没有可能的方法在应用程序 B 记录此问题? 这是一个 Spring Boot
我正在使用 BigQuery 的异步存储写入 API。它广泛适用于异步生成器和迭代器,而我以前没有使用过它们。不幸的是我没有得到任何...
使用模拟笑话间谍实现在笑话上异步运行多个测试失败(但单独运行成功)
因此,我在安装 TSX 文件的同一场景中进行了多次测试,但由于我有多个异步代码和多个模拟,因此这些值似乎可能重叠? const getLoadedWrappe...
我有一个 python 元素列表,我想对其应用 API 调用。 API涉及到Web请求,我想同步应用。由于它是第三方 API 我无法真正修改...
我的代码: 导入 std/[asyncdispatch, httpclient, json] proc asyncProc(): Future[string] {.async.} = var client = newAsyncHttpClient() 尝试: 让响应=等待client.getContent(“http...
我正在 Angular 中创建一个应用程序,并且使用纯管道“异步”来订阅模板内的 Observable,如下所示: 我正在 Angular 中创建一个应用程序,并且使用纯管道“异步”来订阅模板内的 Observable,如下所示: <nav *ngIf="device.isDesktop$ | async as desktop" class="sidenav__wrapper"> {{ desktop }} <div *ngFor="let item of menuItems" class="sidenav__item"> <div class="sidenav__icon"> <i [ngClass]="['gg-' + item.icon]"><span></span></i> </div> <span class="sidenav__item-name">{{ item.name }}</span> </div> </nav> 但是,桌面值根本没有更新,即使当我在 console.log 中显示值时,如下所示: get isDesktop$(): Observable<boolean> { return this._deviceType$.asObservable().pipe( map((type) => type === Device.Desktop), tap(console.log) ); } 你的组件.ts import {BreakpointObserver, Breakpoints, BreakpointState} from '@angular/cdk/layout'; export class YourComponent { public isHandset$: Observable<boolean> = this.breakpointObserver .observe(Breakpoints.Handset) .pipe(map((result: BreakpointState) => { return result.matches; })); constructor (private breakpointObserver: BreakpointObserver){ } } 你的组件.html <whateverTag *ngIf="(isHandset$ | async)"></whateverTag>