JavaScript React promise

标签 javascript reactjs

我可能遇到了一个小麻烦。 这是一个返回 Promise 的函数。

export default ()=>{
    const socket = io(config.crypt_compare_api_url);
    let subscription = config.subscription;
    socket.emit('SubAdd', { subs: subscription });

    return new Promise(resolve => {
        socket.on("m",resolve);
    });
}

我在这里使用它。它作为 get_crypto 导入

get_crypto().then((parsedData)=>{
            let el=this.state.currencies.find(element=> element.name===parsedData.name);
            if(el)
            {
                el.price=parsedData.price;
            }
            else this.state.currencies.push(parsedData);

            this.setState(  {
                currencies: this.state.currencies
            });
        });

** 'then' 函数在套接字收到消息后始终必须重复。但它只能工作一次,**

最佳答案

您不能多次调用和回调。您应该使用 observable 或仅调用“m”事件的回调:

export const getCrypto = (cb) => {
    const socket = io(config.crypt_compare_api_url);
    let subscription = config.subscription;
    socket.emit('SubAdd', { subs: subscription });
    socket.on("m", cb);
}

import { getCrypto } from 'get-crypto.js';

getCrypto(parsedData => {
  console.log(parsedData);
  // Do something with parsed data
})

关于JavaScript React promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49407457/

相关文章:

javascript - 添加点击链接到输入字段

javascript - 将设置文件发布到应用程序的最佳和最安全的方式

java - 无法与 Instagram 登录字段交互

reactjs - React.js,如何将多部分/表单数据发送到服务器

javascript - Angularjs 迭代内更新范围

javascript - 如何在辅助 Rails 中从 collection_select 向路线发送 POST

javascript - 函数的返回值未定义

javascript - 我怎样才能让 redux 派发一个 Action 并返回一个 promise ?

javascript - 为什么我的 CSS 不工作

javascript - 如果使用 react-router 设置,则 React show routes