gpt4 book ai didi

node.js - nodejs 异步库和 redis

转载 作者:可可西里 更新时间:2023-11-01 11:48:41 24 4
gpt4 key购买 nike

经过很长一段时间的“不......我不想这样做......”我终于需要使用 async.js 库。

我不知道如何以一种让我开心的方式使用它......

让我们考虑这个非常简化的伪函数:

说真的..我什至不知道如何开始..任何形式的帮助都是很好的帮助。^^

getOPGdata( socket, [ 'url1', 'url2', 'url3', 'url3' ], 'requestid-5364356' );

function getOPGdata( socket, urls, id ){

var results = {};
results[id] = [];

urls.forEach( function( url ) {

url = trim( url );

redis.hgetall( 'ogp:'+url, function ( err, reply ) {

if( reply ) {

results[id].push( reply );

}

else {

results[id].push( refreshOPGcache( url ) );

}

});

});

socket.emit('ogp', results );

}

refreshOPGcache( url ){

redis.hgetall( 'cache:'+url, function ( err, reply ) {

return reply;

}

}

编辑:

这是正确的做法吗?

function getOPGdata( socket, urls, id ){


var results = {};
results[id] = [];

async.map( urls, getOGPfromCache, function(err, r){

results[id] = r;
console.log( results );

});

}

function getOGPfromCache( url, callback ){

redis.hgetall( 'ogp:'+url, function ( err, reply ) {

if( err ){ callback( null, false ); }

if( reply ) {

callback( null, reply );

}

else {

getFreshOPGdata( url, callback );

}

});

}

function getFreshOPGdata( url, callback ){

redis.hgetall( 'justademo:'+url, function ( err, reply ) {

if( err ){ callback( null, false ); }

if( reply ) {

callback( null, reply );

}

else {

callback( null, false );

}

});

}

最佳答案

我确认这是一个可行的解决方案。

function getOPGdata( socket, urls, id ){


var results = {};
results[id] = [];

async.map( urls, getOGPfromCache, function(err, r){

results[id] = r;
console.log( results );

});

}

function getOGPfromCache( url, callback ){

redis.hgetall( 'ogp:'+url, function ( err, reply ) {

if( err ){ callback( null, false ); }

if( reply ) {

callback( null, reply );

}

else {

getFreshOPGdata( url, callback );

}

});

}

function getFreshOPGdata( url, callback ){

redis.hgetall( 'justademo:'+url, function ( err, reply ) {

if( err ){ callback( null, false ); }

if( reply ) {

callback( null, reply );

}

else {

callback( null, false );

}

});

}

关于node.js - nodejs 异步库和 redis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23131050/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com