Fulfilled:来自可观察的承诺不会等待实现

我已经编写了一个函数,该函数将通过 API 获取 IMDB ID 的 IMDB 评级。这是我传递 IMDB ID 的函数

async function movieDetails(ID){
    let ratings= await getDetails(ID);
    return ratings;
}

这是返回 IMDB 评级的函数。

const getDetails = val =>{
    return Rx.Observable.fromPromise(fetch(`http://www.omdbapi.com/?i=${val}&plot=full&apikey=${APIKey}`)
    .then(e => e.json())
    .catch(err => console.log(err)))
    .map(e => e.imdbRating)
    .subscribe(x => {
        console.log(x);
        return x;
    }, e => console.error(e));
}

但是这个函数返回一个承诺对象而不是 IMDB 评级。这是我在控制台上得到的输出。

Promise {[[PromiseStatus]]:"pending",[[PromiseValue]]:undefined}

Promise {[[PromiseStatus]]:"pending",[[PromiseValue]]:undefined}

Contract

7.3

8.1 和 7.3 是来自 getDeatils () 中的控制句的值,这是我正在返回的。并且在 movieDetails () 被调用时打印 promise 对象。可以 anyobody 指出我,我在这里做错了什么?

2

getDetails函数返回subscription,在movieDetails中,您是await正在订阅。简而言之,它不起作用。

当您订阅创建的 observable 时,您将获得订阅以控制其生命周期。这些订阅不会对 observables 的值执行任何操作。

const obs = Observable.from(...) //obs is Observable
const subs = obs.subscribe((x) => console.log(x)); //subs is Subscription
// subs.unsubscribe(); //when you want to unsubscribe even source does not completes

其次,您不能直接awaitObservables-await 关键字用于 Promise。在 Observables 中,observer 是访问值的方式(subscribe中提供的功能)。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(591)
年龄最大零基础学习编程:学习编程最大的时间浪费是什么
上一篇
电脑内存不足:Anzograph-错误-用于查询的内存不足:内存不足
下一篇

相关推荐

  • 按钮救星:WPF会成为我们缺乏光泽UI的救星吗

    关于按钮救星的问题,在wpf bookstore中经常遇到,我昨天(在匿名书店)阅读了Pro WPF in C# 2008,在第 2 章中,他们提到 XAML 允许图形设计和程序员完全独立。这让我想知道是否大多数公司都在朝着拥有专门的设计专家来实现 UI 的方向发展?我知道在我们公司,关于显示器 / UI 的评论并不令人鼓舞,我们甚至考虑引入consultants。UI 开发的所有开发人员都是由…

    2023-11-04 07:03:41
    0 95 74
  • Tom小游戏:如何为Unity游戏引擎安装Tom的地形工具

    关于Tom小游戏的问题,在unity engine install中经常遇到,我刚刚购买并下载了 Tom 's Terrain Tool,但找不到如何安装它的说明。我已经在下载的文件中查找了-这是一个编译的文件。我已经在他的网站上查找了,并且只找到了安装后的操作说明。我已经在网上搜索了说明,但在任何地方都找不到它们。…

    2023-12-28 06:49:55
    0 99 48
  • Us mt:Swift消息 (MT*)

    关于Us mt的问题,在apache swift中经常遇到,我正在寻找将 swift 消息 (MT101) 存储在 hdfs 或非 sql 数据库中的选项。我们可以在 spark 中使用 python 将其存储在 mongo DB 中吗?请让我知道是否有人在类似的要求上工作…

    2022-11-23 08:28:55
    0 65 37

发表评论

登录 后才能评论

评论列表(87条)